// house_pkg/pages/locate/index.ts
// 导入腾讯位置服务
import QQMap from '../../../utils/qqmap'
// 引入SDK核心类，js文件根据自己业务，位置可自行放置
// var QQMap = require('../../../utils/qqmap');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address: '',
    points: [] // 改为数组
  },
  async getLocation() {
    // 调用 API
    const {
      latitude,
      longitude
    } = await wx.getLocation()
    console.log(latitude, longitude)
    // 获取周边小区
    this.getPoint(latitude, longitude)

  },
  async chooseLocation() {
    // 调用小程序 API 获取新的位置
    const {
      latitude,
      longitude
    } = await wx.chooseLocation()
    console.log(latitude, longitude)

    this.getPoint(latitude, longitude)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 获取用户经纬度
    this.getLocation()
  },
  getPoint(latitude, longitude) {
    // search 是实现地点搜索功能的方法
    QQMap.search({
      keyword: '住宅小区', //搜索关键词
      location: [latitude, longitude].join(','), //设置周边搜索中心点
      page_size: 5,
      success: (result) => {
        if (!result || !result.data || result.data.length === 0) {
          console.log('未找到小区数据')
          return
        }
        // 过滤掉多余的数据
        const points = result.data.map(({
          id,
          title,
          _distance
        }) => {
          return {
            id,
            title,
            _distance
          }
        })
        // 渲染数据
        this.setData({
          points
        })
        //逆地址解析（根据经纬度来获取地址）
        QQMap.reverseGeocoder({
          location: [latitude, longitude].join(','),
          success: ({
            result: {
              address
            }
          }) => {
            // 数据数据
            this.setData({
              address
            })
          }
        })

      },
      fail: (error) => {
        console.error('搜索位置失败', error)
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})